性能记录屏幕Java磁盘速度
我正在开发一个Java应用程序来记录屏幕。我用一个机器人拍摄了几个屏幕截图,保存到一个临时文件夹中,然后用JpegImagesToMovie。java将它们构建到QuickTime电影文件中
我遇到的问题是,尽管将脚本开发为以20fps的速度运行,但我只能实现5fps左右的速度。我一直在跟踪磁盘速度,因为将映像保存到磁盘所花的时间太长,这会占用脚本的其余部分
接下来,我修改了脚本,将图像存储在一个BufferedImages数组中,然后在停止录制后将其写入磁盘,从而固定了帧速率,但是在重新编码时,Java会很快耗尽内存(录制几秒钟后)
有没有人有这样做的想法或经验。我能想到的一个解决方案是,是否有办法增加JPEG图像的压缩,但我不确定如何做到这一点
任何帮助都将不胜感激
# 1 楼答案
您可能要考虑的一个选项是对多个线程进行处理。一个线程可以专用于截图,许多其他线程可以写入磁盘。由于写入磁盘不是CPU密集型操作,因此可以让多个磁盘同时运行,每个磁盘都写入不同的文件。以下程序在我的计算机上运行良好,堆大小为512M:
# 2 楼答案
米利穆斯说的。也许你可以设法降低JPEG的分辨率,给你多一点内存,但你可能不得不使用视频编解码器。您还可以尝试创建一个处理程序,以便仅在移动鼠标时进行录制,或者如果您确实想用JPEG进行录制,则可以键入